home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 38 / Amiga Format CD38 (1999-03-15)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-04].iso / -seriously_amiga- / programming / other / wild / developer / examples / src / cynetik / cynetic2.s < prev    next >
Text File  |  1999-01-25  |  6KB  |  270 lines

  1.  
  2.     output    Wildpj:demos/3d/cynetik/Cynetik_Gouraud
  3.     
  4.     include    exec/exec_lib.i
  5.     include    wildinc.gs
  6.     include    wild/wild.i
  7.     include    wild/allmodules.i
  8.     include    extensions/vektorial.i
  9.     include    pypermacro.i
  10.  
  11.     Exec
  12.     lea.l    wildname,a1
  13.     jsr    _LVOOldOpenLibrary(a6)
  14.     move.l    d0,_WILDBase
  15.     beq    exit
  16.     
  17.     bsr    Go
  18.  
  19. exit    Exec
  20.     movea.l    _WILDBase,a1
  21.     move.l    a1,d0
  22.     beq.b    .nwi
  23. .nwi    jsr    _LVOCloseLibrary(a6)
  24.     moveq.l    #0,d0
  25.     rts
  26.     
  27. vektname    dc.b    'libs:Wild/Vektorial.library',0
  28. wildname    dc.b    'wild.library',0
  29. drawm        dc.b    'Fluff',0
  30. dispm        dc.b    'TryPeJam+',0
  31. brokm        dc.b    'ShiX',0
  32. lighm        dc.b    'Koton',0
  33. sincosname2    dc.b    'libs:'
  34. sincosname1    dc.b    'wild/tables/sincos1616.table',0
  35.         cnop    0,4
  36. _WILDBase    dc.l    0
  37. VektBase    dc.l    0
  38. WApp        dc.l    0
  39. AppTags        dc.l    WITD_Scene,TestScene
  40.         dc.l    WIAP_DrawModule,drawm
  41.         dc.l    WIAP_DisplayModule,dispm
  42.         dc.l    WIAP_BrokerModule,brokm
  43.         dc.l    WIAP_LightModule,lighm
  44.         dc.l    WIDI_Width,320
  45.         dc.l    WIDI_Height,256
  46.         dc.l    WIDI_DisplayID,$21000
  47.         dc.l    WITD_CutDistance,32000
  48.         dc.l    0
  49. sincos        dc.l    0
  50. SinOffs        dc.l    0
  51.  
  52. Go    bsr    SetUpWildApp
  53.     bsr    SetUpExts
  54.     
  55. cycle    Wild
  56.     move.l    WApp,a0
  57.     Call    InitFrame
  58.     move.l    WApp,a0
  59.     Call    RealyzeFrame
  60.     move.l    WApp,a0
  61.     Call    DisplayFrame
  62.  
  63.     add.w    #8,PUI
  64.     bmi.b    .npuir
  65.     clr.w    PUI
  66. .npuir    moveq.l    #0,d0
  67.     move.b    $dff007,d0
  68.     andi.w    #63,d0
  69.     cmp.w    #36,d0
  70.     bge.b    .nadpui
  71.     move.w    PUI,d1
  72.     sub.w    d0,d1
  73.     cmp.w    #-255,d1
  74.     bge.b    .ntpui
  75.     move.w    #-255,d1
  76. .ntpui    move.w    d1,PUI
  77. .nadpui
  78.  
  79. RotSecY    MACRO    ;\1=sec,angle EA
  80.     movea.l    VektBase,a6
  81.     lea.l    SECTOR_\1+ent_Ref+ref_I+Rel,a0
  82.     move.l    \2,d0
  83.     moveq.l    #vek_X,d1
  84.     moveq.l    #vek_Z,d2
  85.     Call    RotateDD
  86.     lea.l    SECTOR_\1+ent_Ref+ref_K+Rel,a0
  87.     move.l    \2,d0
  88.     moveq.l    #vek_X,d1
  89.     moveq.l    #vek_Z,d2
  90.     Call    RotateDD
  91.     ENDM
  92.     
  93.     RotSecY    SkruBase,BaseRot
  94.     RotSecY    SkruTreA,TreRot
  95.     RotSecY    SkruTreB,TreRot
  96.     RotSecY    SkruHeadA,HeadRot
  97.     RotSecY    SkruHeadB,HeadRot
  98.     RotSecY    SkruHeadC,HeadRot
  99.     RotSecY    SkruHeadD,HeadRot
  100.     RotSecY    SkruHeadE,HeadRot
  101.     RotSecY    SkruHeadF,HeadRot
  102.  
  103.     sub.l    #10,MyCamera+ref_O+Abs+vek_Y
  104.         
  105.     movea.l    VektBase,a6
  106.     lea.l    MyCamera,a0
  107.     lea.l    SECTOR_SkruBase+ent_Ref+ref_O+Abs,a1
  108.     moveq.l    #1,d0
  109. CLA    Call    CamLookingAt
  110.  
  111. .pr    btst    #7,$bfe001
  112.     beq.b    .pr
  113.     
  114.     btst    #6,$bfe001
  115.     bne    cycle
  116.  
  117.     bsr    KillWildApp
  118.     bsr    KillExts
  119.     rts
  120.  
  121. BaseRot    dc.l    5
  122. TreRot    dc.l    10
  123. HeadRot    dc.l    20
  124.  
  125. SetUpExts    Wild
  126.         moveq.l    #0,d0
  127.         lea.l    vektname,a1
  128.         Call    LoadExtension
  129.         move.l    d0,VektBase
  130.         
  131.         rts
  132.  
  133. KillExts    Wild
  134.         movea.l    VektBase,a1
  135.         Call    KillExtension
  136.         rts
  137.         
  138. SetUpWildApp    Exec
  139.         Call    CreateMsgPort
  140.         tst.l    d0
  141.         bne.b    .msgok
  142.         rts
  143. .msgok        Wild
  144.         movea.l    d0,a0
  145.         lea.l    AppTags,a1
  146.         Call    AddWildApp
  147.         move.l    d0,WApp
  148.         
  149.         lea.l    sincosname1,a0
  150.         moveq.l    #WITA_SINCOS1616,d0
  151.         Call    LoadTable
  152.         move.l    d0,sincos
  153.         bne.b    .had
  154.         lea.l    sincosname2,a0
  155.         moveq.l    #WITA_SINCOS1616,d0
  156.         Call    LoadTable
  157.         move.l    d0,sincos
  158. .had        rts
  159.  
  160. KillWildApp    Wild
  161.         move.l    sincos,a1
  162.         move.l    a1,d0
  163.         beq.b    .nsc
  164.         Call    KillTable
  165. .nsc        
  166.         move.l    WApp,d0
  167.         bne.b    .okwa
  168.         rts
  169. .okwa        movea.l    d0,a0
  170.         move.l    wap_WildPort(a0),d2
  171.         Call    RemWildApp
  172.         Exec
  173.         move.l    d2,a0
  174.         Call    DeleteMsgPort
  175.         rts
  176.                 
  177.  
  178. TestScene    dc.l    TestWorld
  179. MyCamera
  180.  
  181.         QuickRefAbs    0,0,-900
  182.  
  183.         dc.l     palette
  184.  
  185. palette        incbin    fusion256.pal        
  186.  
  187. TestWorld
  188. twarhead    dc.l    TestArena
  189. twartail    dc.l    0
  190.         dc.l    TestArena
  191. twalhead    dc.l    twaltail
  192. twaltail    dc.l    0
  193.         dc.l    twalhead
  194.         dc.l    TestPlayer            
  195.  
  196. TestPlayer    dc.l    0            ; HAKK: no player, for now a sector is enough
  197.  
  198. TestArena    dc.l    twartail
  199.         dc.l    twarhead
  200.         QuickRefRel    0,0,0
  201.         dc.l    0            ; Parent of arenas is UNIVERSE! ABSOLUTE=RELATIVE
  202.         dc.l    0
  203.         dc.w    0
  204.         
  205. tasehead    dc.l    SECTOR_SkruBase
  206. tasetail    dc.l    0    
  207.         dc.l    SECTOR_SkruHeadF
  208.  
  209. taalhead    dc.l    taaltail
  210. taaltail    dc.l    0
  211.         dc.l    taalhead
  212. talihead    dc.l    TestLight
  213. talitail    dc.l    0
  214.         dc.l    TestLight
  215.         dcb    Sphere_SIZE*3
  216.         dc.l    0
  217.  
  218. TestLight    dc.l    AmbLight,talihead
  219.         dc.l    DOT_SkruBase11
  220.         dc.l    $0055ff
  221.         dc.w    255
  222.  
  223. AmbLight    dc.l    talitail,TestLight
  224.         dc.l    0
  225.         dc.l    $ffca22
  226.         dc.w    -16
  227.  
  228. TextTex        EQU    0
  229. TEXTURE_SkruBase0    EQU    TextTex
  230. TEXTURE_SkruTreA0    EQU    TextTex
  231. TEXTURE_SkruTreB0    EQU    TextTex
  232. TEXTURE_SkruHeadA0    EQU    TextTex
  233. TEXTURE_SkruHeadB0    EQU    TextTex
  234. TEXTURE_SkruHeadC0    EQU    TextTex
  235. TEXTURE_SkruHeadD0    EQU    TextTex
  236. TEXTURE_SkruHeadE0    EQU    TextTex
  237. TEXTURE_SkruHeadF0    EQU    TextTex
  238.         
  239. PUI        dc.w    -16
  240.     
  241.         MakeSector SkruBase,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruBase.sec.s
  242.         MakeSector SkruTreA,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruTreA.sec.s
  243.         MakeSector SkruTreB,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruTreB.sec.s
  244.         MakeSector SkruHeadA,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadA.sec.s
  245.         MakeSector SkruHeadB,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadB.sec.s
  246.         MakeSector SkruHeadC,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadC.sec.s
  247.         MakeSector SkruHeadD,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadD.sec.s
  248.         MakeSector SkruHeadE,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadE.sec.s
  249.         MakeSector SkruHeadF,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadF.sec.s
  250.         
  251.         LinkSector SkruBase,SECTOR_SkruTreA,tasehead,TestArena
  252.         LinkSector SkruTreA,SECTOR_SkruTreB,SECTOR_SkruBase,SECTOR_SkruBase
  253.         LinkSector SkruTreB,SECTOR_SkruHeadA,SECTOR_SkruTreA,SECTOR_SkruBase
  254.         LinkSector SkruHeadA,SECTOR_SkruHeadB,SECTOR_SkruTreB,SECTOR_SkruTreA
  255.         LinkSector SkruHeadB,SECTOR_SkruHeadC,SECTOR_SkruHeadA,SECTOR_SkruTreA
  256.         LinkSector SkruHeadC,SECTOR_SkruHeadD,SECTOR_SkruHeadB,SECTOR_SkruTreA
  257.         LinkSector SkruHeadD,SECTOR_SkruHeadE,SECTOR_SkruHeadC,SECTOR_SkruTreB
  258.         LinkSector SkruHeadE,SECTOR_SkruHeadF,SECTOR_SkruHeadD,SECTOR_SkruTreB
  259.         LinkSector SkruHeadF,tasetail,SECTOR_SkruHeadE,SECTOR_SkruTreB
  260.     
  261.         PosSector SkruBase,0,0,0
  262.         PosSector SkruTreA,220,-202,93
  263.         PosSector SkruTreB,-220,-202,-93
  264.         PosSector SkruHeadA,0,62,186
  265.         PosSector SkruHeadB,140,62,-93
  266.         PosSector SkruHeadC,-160,62,-93
  267.         PosSector SkruHeadD,0,62,186
  268.         PosSector SkruHeadE,140,62,-93
  269.         PosSector SkruHeadF,-160,62,-93
  270.